using System;
using System.Data;
using System.Text;
using System.Collections.Generic;

#region user code using
#endregion user code using

namespace Adoor.Emprunts
{
	#region user code namespace
	#endregion user code namespace
	
	
	public abstract class Exemplaire
	#region user code implements
	#endregion user code implements
	{
	
		public virtual System.Int32 Numero
		{
			get
			{
				System.Int32  value = this.m_Numero;
				#region user code get public System.Int32 Numero
				#endregion user code get public System.Int32 Numero
				return value; 
			}
			set
			{ 
				#region user code set public System.Int32 Numero
				#endregion user code set public System.Int32 Numero				
				this.m_Numero = value;
				OnNumeroChanged();
			}
		}
		
		public event EventHandler NumeroChanged;
		
		protected virtual void OnNumeroChanged()
		{				
			if(NumeroChanged != null)
				NumeroChanged(this, System.EventArgs.Empty);			
					
			#region user code OnNumeroChanged
			#endregion user code OnNumeroChanged				
		}

		public virtual System.Int32 DateMaxReservation
		{
			get
			{
				System.Int32  value = this.m_DateMaxReservation;
				#region user code get public System.Int32 DateMaxReservation
				#endregion user code get public System.Int32 DateMaxReservation
				return value; 
			}
			set
			{ 
				#region user code set public System.Int32 DateMaxReservation
				#endregion user code set public System.Int32 DateMaxReservation				
				this.m_DateMaxReservation = value;
				OnDateMaxReservationChanged();
			}
		}
		
		public event EventHandler DateMaxReservationChanged;
		
		protected virtual void OnDateMaxReservationChanged()
		{				
			if(DateMaxReservationChanged != null)
				DateMaxReservationChanged(this, System.EventArgs.Empty);			
					
			#region user code OnDateMaxReservationChanged
			#endregion user code OnDateMaxReservationChanged				
		}

		public virtual System.Int32 DateAchat
		{
			get
			{
				System.Int32  value = this.m_DateAchat;
				#region user code get public System.Int32 DateAchat
				#endregion user code get public System.Int32 DateAchat
				return value; 
			}
			set
			{ 
				#region user code set public System.Int32 DateAchat
				#endregion user code set public System.Int32 DateAchat				
				this.m_DateAchat = value;
				OnDateAchatChanged();
			}
		}
		
		public event EventHandler DateAchatChanged;
		
		protected virtual void OnDateAchatChanged()
		{				
			if(DateAchatChanged != null)
				DateAchatChanged(this, System.EventArgs.Empty);			
					
			#region user code OnDateAchatChanged
			#endregion user code OnDateAchatChanged				
		}

		public virtual Adoor.Ouvrages.Ouvrage Ouvrage
		{
			get
			{
				Adoor.Ouvrages.Ouvrage  value = this.m_Ouvrage;
				#region user code get public Adoor.Ouvrages.Ouvrage Ouvrage
				#endregion user code get public Adoor.Ouvrages.Ouvrage Ouvrage
				return value; 
			}
			set
			{ 
				#region user code set public Adoor.Ouvrages.Ouvrage Ouvrage
				#endregion user code set public Adoor.Ouvrages.Ouvrage Ouvrage
				this.m_Ouvrage = value; 
				OnOuvrageChanged();
			}
		}
		
		public event EventHandler OuvrageChanged;
		
		protected virtual void OnOuvrageChanged()
		{			
			if(OuvrageChanged != null)
				OuvrageChanged(this, System.EventArgs.Empty);
				
			#region user code OnOuvrageChanged
			#endregion user code OnOuvrageChanged
		}

		public virtual Adoor.Emprunts.Bibliotheque BibliAchat
		{
			get
			{
				Adoor.Emprunts.Bibliotheque  value = this.m_BibliAchat;
				#region user code get public Adoor.Emprunts.Bibliotheque BibliAchat
				#endregion user code get public Adoor.Emprunts.Bibliotheque BibliAchat
				return value; 
			}
			set
			{ 
				#region user code set public Adoor.Emprunts.Bibliotheque BibliAchat
				#endregion user code set public Adoor.Emprunts.Bibliotheque BibliAchat
				this.m_BibliAchat = value; 
				OnBibliAchatChanged();
			}
		}
		
		public event EventHandler BibliAchatChanged;
		
		protected virtual void OnBibliAchatChanged()
		{			
			if(BibliAchatChanged != null)
				BibliAchatChanged(this, System.EventArgs.Empty);
				
			#region user code OnBibliAchatChanged
			#endregion user code OnBibliAchatChanged
		}

		public virtual IList<Adoor.Emprunts.Emprunt > EmpruntPasse
		{
			get { return this.m_EmpruntPasse; }
		}

		public virtual Adoor.Emprunts.Bibliotheque BibliLocalisation
		{
			get
			{
				Adoor.Emprunts.Bibliotheque  value = this.m_BibliLocalisation;
				#region user code get public Adoor.Emprunts.Bibliotheque BibliLocalisation
				#endregion user code get public Adoor.Emprunts.Bibliotheque BibliLocalisation
				return value; 
			}
			set
			{ 
				#region user code set public Adoor.Emprunts.Bibliotheque BibliLocalisation
				#endregion user code set public Adoor.Emprunts.Bibliotheque BibliLocalisation
				this.m_BibliLocalisation = value; 
				OnBibliLocalisationChanged();
			}
		}
		
		public event EventHandler BibliLocalisationChanged;
		
		protected virtual void OnBibliLocalisationChanged()
		{			
			if(BibliLocalisationChanged != null)
				BibliLocalisationChanged(this, System.EventArgs.Empty);
				
			#region user code OnBibliLocalisationChanged
			#endregion user code OnBibliLocalisationChanged
		}

		public virtual Adoor.Emprunts.Adherent AdherentReserveur
		{
			get
			{
				Adoor.Emprunts.Adherent  value = this.m_AdherentReserveur;
				#region user code get public Adoor.Emprunts.Adherent AdherentReserveur
				#endregion user code get public Adoor.Emprunts.Adherent AdherentReserveur
				return value; 
			}
			set
			{ 
				#region user code set public Adoor.Emprunts.Adherent AdherentReserveur
				#endregion user code set public Adoor.Emprunts.Adherent AdherentReserveur
				this.m_AdherentReserveur = value; 
				OnAdherentReserveurChanged();
			}
		}
		
		public event EventHandler AdherentReserveurChanged;
		
		protected virtual void OnAdherentReserveurChanged()
		{			
			if(AdherentReserveurChanged != null)
				AdherentReserveurChanged(this, System.EventArgs.Empty);
				
			#region user code OnAdherentReserveurChanged
			#endregion user code OnAdherentReserveurChanged
		}

		public virtual Adoor.Emprunts.Emprunt EmpruntCourant
		{
			get
			{
				Adoor.Emprunts.Emprunt  value = this.m_EmpruntCourant;
				#region user code get public Adoor.Emprunts.Emprunt EmpruntCourant
				#endregion user code get public Adoor.Emprunts.Emprunt EmpruntCourant
				return value; 
			}
			set
			{ 
				#region user code set public Adoor.Emprunts.Emprunt EmpruntCourant
				#endregion user code set public Adoor.Emprunts.Emprunt EmpruntCourant
				this.m_EmpruntCourant = value; 
				OnEmpruntCourantChanged();
			}
		}
		
		public event EventHandler EmpruntCourantChanged;
		
		protected virtual void OnEmpruntCourantChanged()
		{			
			if(EmpruntCourantChanged != null)
				EmpruntCourantChanged(this, System.EventArgs.Empty);
				
			#region user code OnEmpruntCourantChanged
			#endregion user code OnEmpruntCourantChanged
		}

		
		/// <summary>
		/// Called when user is creating a new entity.
		/// </summary>
		protected virtual void OnCreate(object[] args)
		{
			Numero = 0;		
	DateMaxReservation = 0;		
	DateAchat = 0;		
	
			#region user code OnCreate
			#endregion user code OnCreate			
		}
		
		/// <summary>
		/// Called when user is retreiving an entity from storage
		/// </summary>
		protected virtual void OnMaterialize()
		{
			#region user code OnMaterialize
			#endregion user code OnMaterialize
		}
		
		public virtual System.String ModifiePar
		{
			get
			{
				System.String  value = this.m_ModifiePar;
				#region user code get public System.String ModifiePar
				#endregion user code get public System.String ModifiePar
				return value; 
			}
		}
		
		public virtual System.DateTime ModifieLe
		{
			get
			{
				System.DateTime  value = this.m_ModifieLe;
				#region user code get public System.String ModifieLe
				#endregion user code get public System.String ModifieLe
				return value; 
			}
		}
		
		public virtual System.String TableName
		{
			get
			{
				System.String  value = this.m_TableName;
				#region user code get public System.String TableName
				#endregion user code get public System.String TableName
				return value; 
			}
		}
		
		protected abstract System.String m_ModifiePar { get; }
		
		protected abstract System.String m_TableName { get; }
		
		protected abstract System.DateTime m_ModifieLe { get; }
		
		
		protected abstract System.Int32 m_Numero { get; set; }

		protected abstract System.Int32 m_DateMaxReservation { get; set; }

		protected abstract System.Int32 m_DateAchat { get; set; }

		protected abstract Adoor.Ouvrages.Ouvrage m_Ouvrage { get; set; }

		protected abstract Adoor.Emprunts.Bibliotheque m_BibliAchat { get; set; }

		protected abstract IList<Adoor.Emprunts.Emprunt > m_EmpruntPasse { get; }

		protected abstract Adoor.Emprunts.Bibliotheque m_BibliLocalisation { get; set; }

		protected abstract Adoor.Emprunts.Adherent m_AdherentReserveur { get; set; }

		protected abstract Adoor.Emprunts.Emprunt m_EmpruntCourant { get; set; }


		#region user code class
		#endregion user code class
	}
}
